package ar.uba.is2.ec.config;

import java.util.Properties;

import ar.uba.is2.common.mensaje.protocolo.Protocolo;
import ar.uba.is2.ec.comm.ModuloComunicacion;

public class Contexto {

	private static class DummyContexto extends Contexto {
		@Override
		public String get(String nombrePropiedad) {
			throw new RuntimeException(
					"No se inició correctamente la configuración");
		}

		@Override
		public ModuloComunicacion getModuloComunicacion() {
			throw new RuntimeException(
					"No se inició correctamente la configuración");
		}

		@Override
		public void setModuloComunicacion(ModuloComunicacion moduloComunicacion) {
			throw new RuntimeException(
					"No se inició correctamente la configuración");
		}

		@Override
		public void setPropiedades(Properties propiedades) {
			throw new RuntimeException(
					"No se inició correctamente la configuración");
		}
	}

	public static Contexto instance = new DummyContexto();

	private ModuloComunicacion moduloComunicacion;
	private Properties propiedades;
	private Protocolo protocoloSC;

	private ConfiguracionGeneralEC configuracionGeneralEC;

	public String get(String nombrePropiedad) {
		return propiedades.getProperty(nombrePropiedad, "");
	}

	public ConfiguracionGeneralEC getConfiguracionGeneralEC() {
		return configuracionGeneralEC;
	}

	public ModuloComunicacion getModuloComunicacion() {
		return moduloComunicacion;
	}

	public Protocolo getProtocoloSC() {
		return this.protocoloSC;
	}

	public void setConfiguracionGeneralEC(ConfiguracionGeneralEC conf) {
		this.configuracionGeneralEC = conf;
	}

	public void setModuloComunicacion(ModuloComunicacion moduloComunicacion) {
		this.moduloComunicacion = moduloComunicacion;
	}

	public void setPropiedades(Properties propiedades) {
		this.propiedades = propiedades;
	}

	public void setProtocoloSC(Protocolo protocoloSC) {
		this.protocoloSC = protocoloSC;
	}
}
